Occasionally, revolutionary technology advances are made that redefine how business is conducted. Less than five years ago, one of these leaps occurred in the form of the Internet. Although the Internet itself had been in existence for decades, the addition of a powerful catalyst application, the World Wide Web, started a chain reaction. The result is a new software platform that unites companies, organizations, and individuals previously separated by geography, language, and culture into a virtually connected, electronic global village. This platform has dramatically reshaped—and will continue to affect—the nature of all computing, information exchange, and commerce.
As we move from the latter half of the 1990s and into 2000, the Internet is the driving impetus behind almost all new technology and application developments. As much as it has already changed the software industry, yet to come are the numerous solutions that will dramatically affect businesses and consumers worldwide. Organizations that take advantage of this new and advanced computing paradigm and utilize Internet-based software solutions will gain significant competitive advantage.
The greatest single effect the Internet will have is the creation of a global information architecture. This new infrastructure, based upon the TCP/IP protocol, is not limited to the public network currently known as the Internet. It also works for any other IP-based network environment, including private internal networks known as intranets.
A new generation of advanced, object-oriented, client/server application software will be one to take greatest advantage of this new Internet-enabled architecture. The promise of a totally open, extensible, and dynamically modifiable environment is something that the current generation of fourth-generation language-based “client/server” solutions cannot provide. Proprietary and inflexible fourth-generation languages (4GLs) are the primary reasons that today's generation of Client/sever applications have failed to deliver upon their original promise. This new object-oriented, Internet-enabled architecture does not suffer from such limitations. It will enable the creation of a large new industry in their place, driving the client/sever re-engineering revolution.
Since the late 1980s, client/sever computing began to transform the corporate computing model. Client/server architecture provided unprecedented flexibility to groups, departments, and organizations within large corporations by taking advantage of internal networks and making centralized information available to everyone in a readily accessible from across the enterprise. This new model was directly pitted against the mainframe-based, centralized computing model of the past. Just as most of the monolithic, data-specific, mainframe-based applications didn't survive the evolution to client/sever, the new demands required by the Internet as a computing platform will eliminate many client/sever applications from making the transition to global distributed computing.
The typical client/sever product has a two-tiered architecture with a client application that communicates with a back-end relational database across a physical network.
Global enterprise computing imposes requirements on application software that exceed the capabilities of traditional client/sever technologies. Requirements such as the ability to support heterogeneous environments, multiple languages, multimedia, the Internet and corporate intranets, and rapid application deployment and upgrades have exceeded the capabilities of 4GL client/sever programming environments. In addition, a modem application software company must have a product architecture that supports rapid evolution.
Industry analysts agree that the client/sever industry is rapidly transitioning to provide support for the Internet. As such, true distributed computing will for the first time be practical.
Where no one vendor was successful in creating a ubiquitous networking protocol standard, the powerful pressure exerted by the Internet resulted in the widespread adoption of TCP/IP as a network protocol across all computing platforms and network devices. This standardization has led to the very rapid rise of internal corporate intranets. Using the identical technology that supports connectivity across the public Internet, any company with an IP-compatible network can distribute information and Web-based applications throughout the enterprise. They can do it simply, at a low cost, and with a high probability of success.
Additionally, if a business is prepared to program at the level of TCP/IP (through a socket interface), they can create vastly more sophisticated applications at low risk and low cost. The world of distributed computing and applications has taken a dramatically positive upward turn because of the Internet.
However, this does present a challenge. Global enterprise computing imposes enormous requirements on application software that exceed the capabilities of mainframe-centric and traditional client/sever technologies. Requirements such as the ability to support heterogeneous environments, multiple languages, multimedia, the Internet and corporate Intranets, and rapid application deployment and upgrades have exceeded the ability of 4GL client/server programming environments. Most organizations are not equipped to build or assemble technologies that overcome this challenge. In addition, a modem application software company must have a product architecture that supports rapid evolution because the requirements of tomorrow's architecture will pass by today's solution.
Along with the technical forces, business drivers such as the total cost of ownership exert influence on the application software architecture. The perfect technical solution will not be chosen if it is too costly to maintain, upgrade, or deploy. The right architecture achieves a balance of all relevant costs to reach the lowest possible total cost of ownership.
An architecture must cultivate user acceptance. The user community will not adopt a fast system with a poor user interface. Nor will they use a system that merely looks good, yet does not truly enhance the business transactions they must perform. The successful architecture is efficient and lean. It minimizes user actions, and conveys information in a manner that is easily understood by all. It is easy to learn, easy to use, and provides real value to its users.
In order to meet these challenges, the key elements of a comprehensive application architecture must include:                Familiar User Interface        Internationalization        Standards Compliance        Upgradability        Complete Development Tools        Configurability        Application Integration Ability        
A further challenge for an Internet/Intranet based application or application suite is that according to leading industry analysts, there is an inherent dichotomy in the way that most organizations purchase and deploy application software, exacerbated by poor application architecture. Packaged software applications are typically chosen so that the customer can rely on the software vendor for support, enhancements, and a long term relationship. However, most companies wind up making heavy customizations to the application before they deploy it, then discover that the vendor can't support those customizations. Taking enhancements is prohibitive because doing so would require making the customizations all over again at great expense.
In order to allow companies to customize their applications yet still receive the benefits of upgrades and supports, enterprise applications must provide four critical components:                Comprehensive Development Tools        Published Application Program Interfaces APIs        Complete Metadata Repository        Component Architecture        
Additionally, an Internet-based client/sever application must be capable of distributing itself widely across the Internet and supporting multiple combinations and configurations.
Specifically, a need exists for an Intranet/Internet based architecture and technology to support the rapid technology changes, including those associated with the Internet, including:                Replacement of the traditional client/sever environment        Replacing existing WANs with Internet-based topologies and protocols        The rising popularity of multi-tiered development tools and applications        Rapid changes in software development methodologies        The increased use of software components and objects at all levels        The decline of monolithic desktop applications        The use of smaller and lighter Internet-based client applications        The use of the Internet as a software distribution channel        The use of the Internet to support customers        Requirement for true application data independence        The Internet must support heterogeneous devices and operating systems        The Internet is global and supports multiple languages        The Internet supports content of all kinds (e.g., multimedia, audio, video)        
These requirements are necessary to provide an Internet-based client/sever application that is capable of distributing itself widely across the Internet and supporting multiple combinations and configurations.